package org.apcs.pokemon.pokemon;

/**
 * Author:			Zachary Reed
 * Date Created:	Mar 27, 2010
 * Last Modified:	Mar 28, 2010
 * Package:			org.apcs.pokemon.pokemon
 * Filename:		Charizard.java
 * Description:		A class that defines the default stats for Charizard &
 * 					constructs new Charizard pokemon.
 */

/** Charizard
 * Number:			006							Base HP:  78	HP Yield:   0
 * M/F Ratio:		87.5% male					Base AT:  84	AT Yield:   0
 * Type(s):			Fire						Base DE:  78	DE Yield:   0
 * Exp @ lvl 100:	1,059,860					Base SA: 109	SA Yield:   3
 * Evolves @ lvl:	None						Base SD:  85	SD Yield:   0
 * Evolves into:	None						Base SP: 100	SP Yield:   0
 * Base moves:		Wing Attack									XP Yield: 209
 */

public class Charizard extends Pokemon {

	protected static final int NUMBER			=	6;
	protected static final String NAME			=	"Charizard";
	protected static final double MFRATIO		=	87.5;
	protected static final int[] TYPES			=	{1,9};
	protected static final int[] STATS			=	{78,84,78,109,85,100};
	protected static final int[] EVYIELDS		=	{0,0,0,3,0,0,209};
	protected static final int EXPTYPE			=	3;
	protected static final int EVOLVES_AT_LVL	=	-1;
	protected static final int EVOLVES_INTO		=	-1;
	protected static final int[] BASE_MOVES		=	{17};

    protected static final int[][] LEVEL_UP_MOVES   =   {{36,17},{42,53},{49,83},{59,257},{66,394}};
    protected static final int[] TMHM_MOVES         =   {264,337,46,92,237,241,63,182,218,76,231,89,216,91,280,104,53,126,317,332,263,290,156,213,211,315,355,411,374,203,406,261,421,416,14,446,157,214,363,207,164,15,19,70,432,249};

	/* Create new Charizard with default name */
	public Charizard(int trainerID) {
		super(NUMBER,NAME,false,Pokemon.calcGender(MFRATIO),TYPES,
			STATS,EVYIELDS,EXPTYPE,EVOLVES_AT_LVL,EVOLVES_INTO,
			trainerID,BASE_MOVES,LEVEL_UP_MOVES,TMHM_MOVES);
	}

	/* Create new Charizard with nickname */
	public Charizard(String name,int trainerID) {
		super(NUMBER,name,true,Pokemon.calcGender(MFRATIO),TYPES,
			STATS,EVYIELDS,EXPTYPE,EVOLVES_AT_LVL,EVOLVES_INTO,
			trainerID,BASE_MOVES,LEVEL_UP_MOVES,TMHM_MOVES);
	}

	/* Create new Charizard with default name & custom level*/
	public Charizard(int level,int trainerID) {
		super(NUMBER,NAME,false,level,Pokemon.calcGender(MFRATIO),TYPES,
			STATS,EVYIELDS,EXPTYPE,EVOLVES_AT_LVL,EVOLVES_INTO,
			trainerID,BASE_MOVES,LEVEL_UP_MOVES,TMHM_MOVES);
	}

	/* Create new Charizard with nickname & custom level */
	public Charizard(String name,int level,int trainerID) {
		super(NUMBER,name,true,level,Pokemon.calcGender(MFRATIO),TYPES,
			STATS,EVYIELDS,EXPTYPE,EVOLVES_AT_LVL,EVOLVES_INTO,
			trainerID,BASE_MOVES,LEVEL_UP_MOVES,TMHM_MOVES);
	}
}